home *** CD-ROM | disk | FTP | other *** search
Text File | 1988-11-15 | 2.5 KB | 56 lines | [04] ASCII Text (0x0000) |
- Apple II
- Technical Notes
- _____________________________________________________________________________
- Developer Technical Support
-
-
- Apple II Miscellaneous
- #3: Super Serial Card Firmware Bug
-
- Revised by: Matt Deatherage November 1988
- Written by: Cameron Birse November 1985
-
- This Technical Note documents two bugs in the Super Serial Card firmware.
- _____________________________________________________________________________
-
- The Super Serial Card (SSC) firmware does not access location $CFFF to clear
- the $C800 space before jumping into its bank-switched ROM in that area.
-
- By omitting this access, the Super Serial Card can cause a slot data bus
- conflict when a ROM of equal or greater strength on another card "owns" the
- $C800 space when the Super Serial Card wants to use it. For example, the
- UniDisk 3.5 controller card uses the same 74LS245 octal bus driver as the
- Super Serial Card. If you are using the UniDisk 3.5 card and switch to the
- Super Serial Card firmware, there will be a bus conflict . The SSC is trying
- to switch in its own $C800 space while the UniDisk 3.5 card is trying to keep
- the $C800 space, since no one cleared it by accessing $CFFF. Since both have
- the same capability to drive the bus, neither wins the battle.
-
- An easy solution to this problem is to reference $CFFF before calling any of
- the Pascal entry points on the Super Serial Card. For example:
-
- NEWSLOT STA $CFFF ;reset the slot ROM space
- LDA Char ;Char = character to output
- LDX #$Cn ;n = slot number
- LDY #$n0
- STX MSLOT ;MSLOT = $7F8, always set it up
- JSR PWRITE ;now call the Pascal routine of your choice
-
- This bug is in the Pascal entry points; the BASIC entry point does not have
- this problem as there is a STA $CFFF instruction at $Cn1B.
-
- This example code stores the slot number (in the form $Cn) in MSLOT, a screen
- hole used to tell the system which peripheral card had control when an
- interrupt occurred. The Super Serial Card firmware does set up MSLOT, but
- does not do so until long after it has enabled its $C800 space. If an IRQ
- comes through the system between the call to the card and when the card stores
- MSLOT, the system will crash.
-
- Both bugs can be avoided by using the sample code to call entry points on the
- Super Serial Card.
-
-
- Further Reference
- o Apple IIe Technical Reference Manual
-
-